<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>websocket通讯</title>
</head>
<!--<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>-->
<script src="./jquery-1.9.1.min.js"></script>
<script>
    var socket;
    function openSocket() {
        if(typeof(WebSocket) == "undefined") {
            console.log("您的浏览器不支持WebSocket");
        }else{
            console.log("您的浏览器支持WebSocket");
            //实现化WebSocket对象，指定要连接的服务器地址与端口  建立连接
            var socketUrl="http://localhost:8080/websocket?token="+$("#userId").val();
            //js使用websocket要使用ws或者wss协议，不能使用http协议
            socketUrl=socketUrl.replace("https","ws").replace("http","ws");
            console.log("访问url为："+socketUrl);
            if(socket!=null){
                socket.close();
                socket=null;
            }
            socket = new WebSocket(socketUrl);
            //打开事件
            socket.onopen = function() {
                console.log("websocket已打开");
                console.log("----------分割线-----------");
                //socket.send("这是来自客户端的消息" + location.href + new Date());
            };
            //获得消息事件
            socket.onmessage = function(msg) {
                console.log($("#userId").val() +"(我)接受到消息："+msg.data);
                console.log("----------分割线-----------");
                //发现消息进入    开始处理前端触发逻辑
            };
            //关闭事件
            socket.onclose = function() {
                console.log("websocket已关闭");
                console.log("----------分割线-----------");
            };
            //发生了错误事件
            socket.onerror = function() {
                console.log("websocket发生了错误");
                console.log("----------分割线-----------");
            }
        }
    }
    function sendMessage() {
        if(typeof(WebSocket) == "undefined") {
            console.log("您的浏览器不支持WebSocket");
            console.log("----------分割线-----------");
        }else {
            console.log("您的浏览器支持WebSocket");
            console.log('向用户：'+$("#toUserId").val()+' 发送消息');
            console.log("发送内容为："+$("#contentText").val());
            console.log("----------分割线-----------");
            // socket.send('{"toUserId":"'+$("#toUserId").val()+'","contentText":"'+$("#contentText").val()+'"}');
            var httpRequest = new XMLHttpRequest();//第一步：建立所需的对象
            if($("#toUserId").val()==""){
                var url = "http://localhost:8080/socket/push/ " + "?message=" + $("#contentText").val();
                httpRequest.open('GET', url, true);//第二步：打开连接  将请求参数写在url中  ps:"./Ptest.php?name=test&nameone=testone"
                httpRequest.send();//第三步：发送请求  将请求参数写在URL中
            }else {
                var url = "http://localhost:8080/socket/push/" + $("#toUserId").val() + "?message=" + $("#contentText").val();
                httpRequest.open('GET', url, true);//第二步：打开连接  将请求参数写在url中  ps:"./Ptest.php?name=test&nameone=testone"
                httpRequest.send();//第三步：发送请求  将请求参数写在URL中
            }
        }
    }
</script>
<body>
<p>【发送者】：<div><input id="userId" name="userId" type="text" value="10"></div>
<p>【接收者】：<div><input id="toUserId" name="toUserId" type="text" value="10"></div>
<p>【发送信息】：<div><input id="contentText" name="contentText" type="text" value="hello websocket"></div>
<p>【操作】：<div><input type="button" value="开启socket" onclick="openSocket()"/></div>
<p>【操作】：<div><input type="button" value="发送消息" onclick="sendMessage()"/></div>
</body>

</html>
